// import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
//
// void main() {
//   runApp(MyHomePage());
// }
void main() =>runApp(MyHomeApp());

// Widget:
// 有状态的Widget：StatefulWidget 在运行过程中有一下状态（data）需要改变
// 无状态的widget：StatelessWidget 内容是确定没有状态（data）的改变
class MyHomeApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        debugShowCheckedModeBanner: false,
        home:MyHomePage()
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return  Scaffold(
        appBar: AppBar(
          title: Center(
            child: Text("第一flutter程序"),
          ),
        ),
        body: MyContentBody()
    );
  }
}
//stateful不能定义状态 -> 创建一个单独的类，这个类负责维护状态
class MyContentBody extends StatefulWidget {
  @override
  State<StatefulWidget> createState(){
    return MyContentBodyState();
  }
}

class MyContentBodyState extends State<MyContentBody> {
  //需要注意的是如果var声明的变量在声明的同时马上赋某一类型的值，那么该变量就固定该类型，
  // 不可再赋其他类型的值，否则会报错
  //dynamic 声明的变量若在声明的同时马上赋值，其类型还是动态的，并不会固定为赋值的类型
  dynamic flag = true;

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Center(
        child: Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Checkbox(
                value: flag,
                onChanged: (value) {
                  print(value);
                  setState(() {
                    flag = value;
                  });
                  //flag = value;
                  // flag = value;
                }
            ),
            Text('hello')
          ],
        )
    );
  }
}